// 暂未开启...


//package com.ruoyi.xxljob.admin.controller;
//
//import com.ruoyi.xxljob.admin.controller.annotation.PermissionLimit;
//import com.ruoyi.xxljob.admin.core.model.XxlJobGroup;
//import com.ruoyi.xxljob.admin.core.model.XxlJobUser;
//import com.ruoyi.xxljob.admin.core.util.I18nUtil;
//import com.ruoyi.xxljob.admin.dao.XxlJobGroupDao;
//import com.ruoyi.xxljob.admin.dao.XxlJobUserDao;
//import com.ruoyi.xxljob.admin.service.LoginService;
//import com.ruoyi.xxljob.core.biz.model.ReturnT;
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.util.DigestUtils;
//import org.springframework.util.StringUtils;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @author xuxueli 2019-05-04 16:39:50
// */
//@Controller
//@RequestMapping("/user")
//public class UserController {
//
//    @Resource
//    private XxlJobUserDao xxlJobUserDao;
//    @Resource
//    private XxlJobGroupDao xxlJobGroupDao;
//
//    @RequestMapping
//    @PermissionLimit(adminuser = true)
//    public String index(Model model) {
//
//        // 执行器列表
//        List<XxlJobGroup> groupList = xxlJobGroupDao.findAll();
//        model.addAttribute("groupList", groupList);
//
//        return "user/user.index";
//    }
//
//    @RequestMapping("/pageList")
//    @ResponseBody
//    @PermissionLimit(adminuser = true)
//    public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start,
//                                        @RequestParam(required = false, defaultValue = "10") int length,
//                                        String username, int role) {
//
//        // page list
//        List<XxlJobUser> list = xxlJobUserDao.pageList(start, length, username, role);
//        int list_count = xxlJobUserDao.pageListCount(start, length, username, role);
//
//        // filter
//        if (list != null && list.size() > 0) {
//            for (XxlJobUser item : list) {
//                item.setPassword(null);
//            }
//        }
//
//        // package result
//        Map<String, Object> maps = new HashMap<String, Object>();
//        maps.put("recordsTotal", list_count);        // 总记录数
//        maps.put("recordsFiltered", list_count);    // 过滤后的总记录数
//        maps.put("data", list);                    // 分页列表
//        return maps;
//    }
//
//    @RequestMapping("/add")
//    @ResponseBody
//    @PermissionLimit(adminuser = true)
//    public ReturnT<String> add(XxlJobUser xxlJobUser) {
//
//        // valid username
//        if (!StringUtils.hasText(xxlJobUser.getUsername())) {
//            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input") + I18nUtil.getString("user_username"));
//        }
//        xxlJobUser.setUsername(xxlJobUser.getUsername().trim());
//        if (!(xxlJobUser.getUsername().length() >= 4 && xxlJobUser.getUsername().length() <= 20)) {
//            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]");
//        }
//        // valid password
//        if (!StringUtils.hasText(xxlJobUser.getPassword())) {
//            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input") + I18nUtil.getString("user_password"));
//        }
//        xxlJobUser.setPassword(xxlJobUser.getPassword().trim());
//        if (!(xxlJobUser.getPassword().length() >= 4 && xxlJobUser.getPassword().length() <= 20)) {
//            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]");
//        }
//        // md5 password
//        xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes()));
//
//        // check repeat
//        XxlJobUser existUser = xxlJobUserDao.loadByUserName(xxlJobUser.getUsername());
//        if (existUser != null) {
//            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("user_username_repeat"));
//        }
//
//        // write
//        xxlJobUserDao.save(xxlJobUser);
//        return ReturnT.SUCCESS;
//    }
//
//    @RequestMapping("/update")
//    @ResponseBody
//    @PermissionLimit(adminuser = true)
//    public ReturnT<String> update(HttpServletRequest request, XxlJobUser xxlJobUser) {
//
//        // avoid opt login seft
//        XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
//        if (loginUser.getUsername().equals(xxlJobUser.getUsername())) {
//            return new ReturnT<String>(ReturnT.FAIL.getCode(), I18nUtil.getString("user_update_loginuser_limit"));
//        }
//
//        // valid password
//        if (StringUtils.hasText(xxlJobUser.getPassword())) {
//            xxlJobUser.setPassword(xxlJobUser.getPassword().trim());
//            if (!(xxlJobUser.getPassword().length() >= 4 && xxlJobUser.getPassword().length() <= 20)) {
//                return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]");
//            }
//            // md5 password
//            xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes()));
//        } else {
//            xxlJobUser.setPassword(null);
//        }
//
//        // write
//        xxlJobUserDao.update(xxlJobUser);
//        return ReturnT.SUCCESS;
//    }
//
//    @RequestMapping("/remove")
//    @ResponseBody
//    @PermissionLimit(adminuser = true)
//    public ReturnT<String> remove(HttpServletRequest request, int id) {
//
//        // avoid opt login seft
//        XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
//        if (loginUser.getId() == id) {
//            return new ReturnT<String>(ReturnT.FAIL.getCode(), I18nUtil.getString("user_update_loginuser_limit"));
//        }
//
//        xxlJobUserDao.delete(id);
//        return ReturnT.SUCCESS;
//    }
//
//    @RequestMapping("/updatePwd")
//    @ResponseBody
//    public ReturnT<String> updatePwd(HttpServletRequest request, String password) {
//
//        // valid password
//        if (password == null || password.trim().length() == 0) {
//            return new ReturnT<String>(ReturnT.FAIL.getCode(), "密码不可为空");
//        }
//        password = password.trim();
//        if (!(password.length() >= 4 && password.length() <= 20)) {
//            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit") + "[4-20]");
//        }
//
//        // md5 password
//        String md5Password = DigestUtils.md5DigestAsHex(password.getBytes());
//
//        // update pwd
//        XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
//
//        // do write
//        XxlJobUser existUser = xxlJobUserDao.loadByUserName(loginUser.getUsername());
//        existUser.setPassword(md5Password);
//        xxlJobUserDao.update(existUser);
//
//        return ReturnT.SUCCESS;
//    }
//
//}
